0 JBC
↳1 JBC2FIG (⇒)
↳2 JBCTerminationGraph
↳3 FIGtoITRSProof (⇒)
↳4 AND
↳5 IDP
↳6 IDPNonInfProof (⇒)
↳7 IDP
↳8 IDependencyGraphProof (⇔)
↳9 TRUE
↳10 IDP
↳11 IDPNonInfProof (⇒)
↳12 AND
↳13 IDP
↳14 IDependencyGraphProof (⇔)
↳15 TRUE
↳16 IDP
↳17 IDependencyGraphProof (⇔)
↳18 TRUE
↳19 IDP
↳20 IDPNonInfProof (⇒)
↳21 AND
↳22 IDP
↳23 IDependencyGraphProof (⇔)
↳24 TRUE
↳25 IDP
↳26 IDependencyGraphProof (⇔)
↳27 TRUE
package example_1;
public class A {
int incr(int i) {
return i=i+1;
}
}
package example_1;
public class B extends A {
int incr(int i) {
return i = i+2;
}
}
package example_1;
public class C extends B {
int incr(int i) {
return i=i+3;
}
}
package example_1;
public class Test {
public int add(int n,A o){
int res=0;
int i=0;
while (i<=n){
res=res+i;
i=o.incr(i);
}
return res;
}
public static void main(String[] args) {
int test = 1000;
Test testClass = new Test();
A a = new A();
int result1 = testClass.add(test,a);
a = new B();
int result2 = testClass.add(test,a);
a = new C();
int result3 = testClass.add(test,a);
// System.out.println("Result: "+result1 + result2 + result3);
}
}
Generated 20 rules for P and 5 rules for R.
Combined rules. Obtained 1 rules for P and 0 rules for R.
Filtered ground terms:
1080_1_main_InvokeMethod(x1, x2) → 1080_1_main_InvokeMethod(x1)
1080_0_add_Load(x1, x2, x3, x4) → 1080_0_add_Load(x3, x4)
Cond_1080_1_main_InvokeMethod(x1, x2, x3) → Cond_1080_1_main_InvokeMethod(x1, x2)
Filtered duplicate args:
1080_0_add_Load(x1, x2) → 1080_0_add_Load(x2)
Combined rules. Obtained 1 rules for P and 0 rules for R.
Finished conversion. Obtained 1 rules for P and 0 rules for R. System has predefined symbols.
Generated 20 rules for P and 56 rules for R.
Combined rules. Obtained 1 rules for P and 0 rules for R.
Filtered ground terms:
700_1_main_InvokeMethod(x1, x2, x3) → 700_1_main_InvokeMethod(x1)
700_0_add_Load(x1, x2, x3, x4) → 700_0_add_Load(x3, x4)
Cond_700_1_main_InvokeMethod(x1, x2, x3, x4) → Cond_700_1_main_InvokeMethod(x1, x2)
Filtered duplicate args:
700_0_add_Load(x1, x2) → 700_0_add_Load(x2)
Combined rules. Obtained 1 rules for P and 0 rules for R.
Finished conversion. Obtained 1 rules for P and 0 rules for R. System has predefined symbols.
Generated 20 rules for P and 104 rules for R.
Combined rules. Obtained 1 rules for P and 0 rules for R.
Filtered ground terms:
237_1_main_InvokeMethod(x1, x2, x3) → 237_1_main_InvokeMethod(x1)
237_0_add_Load(x1, x2, x3, x4) → 237_0_add_Load(x3, x4)
Cond_237_1_main_InvokeMethod(x1, x2, x3, x4) → Cond_237_1_main_InvokeMethod(x1, x2)
Filtered duplicate args:
237_0_add_Load(x1, x2) → 237_0_add_Load(x2)
Combined rules. Obtained 1 rules for P and 0 rules for R.
Finished conversion. Obtained 1 rules for P and 0 rules for R. System has predefined symbols.
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if ((x1[0] >= 0 && x1[0] <= 1000 →* TRUE)∧(1080_0_add_Load(x1[0]) →* 1080_0_add_Load(x1[1])))
(1) -> (0), if ((1080_0_add_Load(x1[1] + 3) →* 1080_0_add_Load(x1[0])))
(1) (&&(>=(x1[0], 0), <=(x1[0], 1000))=TRUE∧1080_0_add_Load(x1[0])=1080_0_add_Load(x1[1]) ⇒ 1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(x1[0]))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(x1[0]))≥COND_1080_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 1080_0_add_Load(x1[0]))∧(UIncreasing(COND_1080_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 1080_0_add_Load(x1[0]))), ≥))
(2) (>=(x1[0], 0)=TRUE∧<=(x1[0], 1000)=TRUE ⇒ 1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(x1[0]))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(x1[0]))≥COND_1080_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 1080_0_add_Load(x1[0]))∧(UIncreasing(COND_1080_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 1080_0_add_Load(x1[0]))), ≥))
(3) (x1[0] ≥ 0∧[1000] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_1080_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 1080_0_add_Load(x1[0]))), ≥)∧[bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[2 + (-1)bso_11] ≥ 0)
(4) (x1[0] ≥ 0∧[1000] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_1080_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 1080_0_add_Load(x1[0]))), ≥)∧[bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[2 + (-1)bso_11] ≥ 0)
(5) (x1[0] ≥ 0∧[1000] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_1080_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 1080_0_add_Load(x1[0]))), ≥)∧[bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[2 + (-1)bso_11] ≥ 0)
(6) (COND_1080_1_MAIN_INVOKEMETHOD(TRUE, 1080_0_add_Load(x1[1]))≥NonInfC∧COND_1080_1_MAIN_INVOKEMETHOD(TRUE, 1080_0_add_Load(x1[1]))≥1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(+(x1[1], 3)))∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(+(x1[1], 3)))), ≥))
(7) ((UIncreasing(1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(+(x1[1], 3)))), ≥)∧[1 + (-1)bso_13] ≥ 0)
(8) ((UIncreasing(1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(+(x1[1], 3)))), ≥)∧[1 + (-1)bso_13] ≥ 0)
(9) ((UIncreasing(1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(+(x1[1], 3)))), ≥)∧[1 + (-1)bso_13] ≥ 0)
(10) ((UIncreasing(1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(+(x1[1], 3)))), ≥)∧0 = 0∧[1 + (-1)bso_13] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(1080_1_MAIN_INVOKEMETHOD(x1)) = [1] + [-1]x1
POL(1080_0_add_Load(x1)) = x1
POL(COND_1080_1_MAIN_INVOKEMETHOD(x1, x2)) = [-1] + [-1]x2
POL(&&(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
POL(0) = 0
POL(<=(x1, x2)) = [-1]
POL(1000) = [1000]
POL(+(x1, x2)) = x1 + x2
POL(3) = [3]
1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(x1[0])) → COND_1080_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 1080_0_add_Load(x1[0]))
COND_1080_1_MAIN_INVOKEMETHOD(TRUE, 1080_0_add_Load(x1[1])) → 1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(+(x1[1], 3)))
1080_1_MAIN_INVOKEMETHOD(1080_0_add_Load(x1[0])) → COND_1080_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 1080_0_add_Load(x1[0]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if ((x1[0] >= 0 && x1[0] <= 1000 →* TRUE)∧(700_0_add_Load(x1[0]) →* 700_0_add_Load(x1[1])))
(1) -> (0), if ((700_0_add_Load(x1[1] + 2) →* 700_0_add_Load(x1[0])))
(1) (&&(>=(x1[0], 0), <=(x1[0], 1000))=TRUE∧700_0_add_Load(x1[0])=700_0_add_Load(x1[1]) ⇒ 700_1_MAIN_INVOKEMETHOD(700_0_add_Load(x1[0]))≥NonInfC∧700_1_MAIN_INVOKEMETHOD(700_0_add_Load(x1[0]))≥COND_700_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 700_0_add_Load(x1[0]))∧(UIncreasing(COND_700_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 700_0_add_Load(x1[0]))), ≥))
(2) (>=(x1[0], 0)=TRUE∧<=(x1[0], 1000)=TRUE ⇒ 700_1_MAIN_INVOKEMETHOD(700_0_add_Load(x1[0]))≥NonInfC∧700_1_MAIN_INVOKEMETHOD(700_0_add_Load(x1[0]))≥COND_700_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 700_0_add_Load(x1[0]))∧(UIncreasing(COND_700_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 700_0_add_Load(x1[0]))), ≥))
(3) (x1[0] ≥ 0∧[1000] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_700_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 700_0_add_Load(x1[0]))), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)
(4) (x1[0] ≥ 0∧[1000] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_700_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 700_0_add_Load(x1[0]))), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)
(5) (x1[0] ≥ 0∧[1000] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_700_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 700_0_add_Load(x1[0]))), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)
(6) (COND_700_1_MAIN_INVOKEMETHOD(TRUE, 700_0_add_Load(x1[1]))≥NonInfC∧COND_700_1_MAIN_INVOKEMETHOD(TRUE, 700_0_add_Load(x1[1]))≥700_1_MAIN_INVOKEMETHOD(700_0_add_Load(+(x1[1], 2)))∧(UIncreasing(700_1_MAIN_INVOKEMETHOD(700_0_add_Load(+(x1[1], 2)))), ≥))
(7) ((UIncreasing(700_1_MAIN_INVOKEMETHOD(700_0_add_Load(+(x1[1], 2)))), ≥)∧[2 + (-1)bso_13] ≥ 0)
(8) ((UIncreasing(700_1_MAIN_INVOKEMETHOD(700_0_add_Load(+(x1[1], 2)))), ≥)∧[2 + (-1)bso_13] ≥ 0)
(9) ((UIncreasing(700_1_MAIN_INVOKEMETHOD(700_0_add_Load(+(x1[1], 2)))), ≥)∧[2 + (-1)bso_13] ≥ 0)
(10) ((UIncreasing(700_1_MAIN_INVOKEMETHOD(700_0_add_Load(+(x1[1], 2)))), ≥)∧0 = 0∧[2 + (-1)bso_13] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(700_1_MAIN_INVOKEMETHOD(x1)) = [-1] + [-1]x1
POL(700_0_add_Load(x1)) = x1
POL(COND_700_1_MAIN_INVOKEMETHOD(x1, x2)) = [-1] + [-1]x2
POL(&&(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
POL(0) = 0
POL(<=(x1, x2)) = [-1]
POL(1000) = [1000]
POL(+(x1, x2)) = x1 + x2
POL(2) = [2]
COND_700_1_MAIN_INVOKEMETHOD(TRUE, 700_0_add_Load(x1[1])) → 700_1_MAIN_INVOKEMETHOD(700_0_add_Load(+(x1[1], 2)))
700_1_MAIN_INVOKEMETHOD(700_0_add_Load(x1[0])) → COND_700_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 700_0_add_Load(x1[0]))
700_1_MAIN_INVOKEMETHOD(700_0_add_Load(x1[0])) → COND_700_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 700_0_add_Load(x1[0]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if ((x1[0] >= 0 && x1[0] <= 1000 →* TRUE)∧(237_0_add_Load(x1[0]) →* 237_0_add_Load(x1[1])))
(1) -> (0), if ((237_0_add_Load(x1[1] + 1) →* 237_0_add_Load(x1[0])))
(1) (&&(>=(x1[0], 0), <=(x1[0], 1000))=TRUE∧237_0_add_Load(x1[0])=237_0_add_Load(x1[1]) ⇒ 237_1_MAIN_INVOKEMETHOD(237_0_add_Load(x1[0]))≥NonInfC∧237_1_MAIN_INVOKEMETHOD(237_0_add_Load(x1[0]))≥COND_237_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 237_0_add_Load(x1[0]))∧(UIncreasing(COND_237_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 237_0_add_Load(x1[0]))), ≥))
(2) (>=(x1[0], 0)=TRUE∧<=(x1[0], 1000)=TRUE ⇒ 237_1_MAIN_INVOKEMETHOD(237_0_add_Load(x1[0]))≥NonInfC∧237_1_MAIN_INVOKEMETHOD(237_0_add_Load(x1[0]))≥COND_237_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 237_0_add_Load(x1[0]))∧(UIncreasing(COND_237_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 237_0_add_Load(x1[0]))), ≥))
(3) (x1[0] ≥ 0∧[1000] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_237_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 237_0_add_Load(x1[0]))), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)
(4) (x1[0] ≥ 0∧[1000] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_237_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 237_0_add_Load(x1[0]))), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)
(5) (x1[0] ≥ 0∧[1000] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_237_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 237_0_add_Load(x1[0]))), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] ≥ 0∧[(-1)bso_11] ≥ 0)
(6) (COND_237_1_MAIN_INVOKEMETHOD(TRUE, 237_0_add_Load(x1[1]))≥NonInfC∧COND_237_1_MAIN_INVOKEMETHOD(TRUE, 237_0_add_Load(x1[1]))≥237_1_MAIN_INVOKEMETHOD(237_0_add_Load(+(x1[1], 1)))∧(UIncreasing(237_1_MAIN_INVOKEMETHOD(237_0_add_Load(+(x1[1], 1)))), ≥))
(7) ((UIncreasing(237_1_MAIN_INVOKEMETHOD(237_0_add_Load(+(x1[1], 1)))), ≥)∧[1 + (-1)bso_13] ≥ 0)
(8) ((UIncreasing(237_1_MAIN_INVOKEMETHOD(237_0_add_Load(+(x1[1], 1)))), ≥)∧[1 + (-1)bso_13] ≥ 0)
(9) ((UIncreasing(237_1_MAIN_INVOKEMETHOD(237_0_add_Load(+(x1[1], 1)))), ≥)∧[1 + (-1)bso_13] ≥ 0)
(10) ((UIncreasing(237_1_MAIN_INVOKEMETHOD(237_0_add_Load(+(x1[1], 1)))), ≥)∧0 = 0∧[1 + (-1)bso_13] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(237_1_MAIN_INVOKEMETHOD(x1)) = [-1] + [-1]x1
POL(237_0_add_Load(x1)) = x1
POL(COND_237_1_MAIN_INVOKEMETHOD(x1, x2)) = [-1] + [-1]x2
POL(&&(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
POL(0) = 0
POL(<=(x1, x2)) = [-1]
POL(1000) = [1000]
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
COND_237_1_MAIN_INVOKEMETHOD(TRUE, 237_0_add_Load(x1[1])) → 237_1_MAIN_INVOKEMETHOD(237_0_add_Load(+(x1[1], 1)))
237_1_MAIN_INVOKEMETHOD(237_0_add_Load(x1[0])) → COND_237_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 237_0_add_Load(x1[0]))
237_1_MAIN_INVOKEMETHOD(237_0_add_Load(x1[0])) → COND_237_1_MAIN_INVOKEMETHOD(&&(>=(x1[0], 0), <=(x1[0], 1000)), 237_0_add_Load(x1[0]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer